主要特點
1. C語言是高級語言。它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像彙編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。
2.C語言是結構式語言。結構式語言的顯著特點是代碼及數據的分隔化,即程式的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程式層次清晰,便於使用、維護以及調試。C 語言是以函式形式提供給用戶的,這些函式可方便的調用,並具有多種循環、條件語句控制程式流向,從而使程式完全結構化。
3.C語言功能齊全。具有各種各樣的數據類型,並引入了指針概念,可使程式效率更高。而且計算功能、邏輯判斷功能也比較強大。
4. C語言適用範圍大。適合於多種作業系統,如Windows、DOS、UNIX、LINUX等等;也適用於多種機型。 C語言對編寫需要硬體進行操作的場合,明顯優於其它高級語言,有一些大型套用軟體也是用C語言編寫的。
常用編譯器
有Microsoft Visual C++,Borland C++,WatcomC++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,WatcomC++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,Turbo C,Dev-C++,C-Free,win-tc 等等......
發展過程
C語言的原型ALGOL 60語言(也稱為A語言) 。
1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。
1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,於是產生了BCPL語言。
1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,並為它起了一個有趣的名字“B語言”。意思是將CPL語言煮乾,提煉出它的精華。並且他用B語言寫了第一個UNIX作業系統。
而在1973年,B語言也給人“煮”了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。
為了使UNIX作業系統推廣,1977年Dennis M.Ritchie發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程式》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,從而使C語言成為目前世界上流行最廣泛的高級程式設計語言。
1987年,隨著微型計算機的日益普及,出現了許多C語言版本。由於沒有統一的標準,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標準研究所(ANSI)為C語言制定了一套ANSI標準, 成為現行的C語言標準 3.C語言的主要特點 ,即經典的 87 ANSI C。C語言發展迅速, 而且成為最受歡迎的語言之一,主要因為它具有強大的功能。許多著名的系統軟體, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C語言編寫的。用C語言加上一些彙編語言子程式, 就更能顯示C語言的優勢了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。
1990年,國際化標準組織ISO(Intrernational StandardOrganization)接受了87 ANSI C為ISO C的標準(ISO9899-1990)。1994年,ISO修訂了C語言的標準。目前流行的C語言編譯系統大多是以ANSI C為基礎進行開發的,但不同版本的C編譯系統所實現的語言功能和語法規則略有差別。
相關特點
C語言是一種結構化語言。它層次清晰,便於按模組化方式組織程式,易於調試和維護。C語言的表現能力和處理能力極強。它不僅具有豐富的運算符和數據類型,便於實現各類複雜的數據結構。它還可以直接訪問記憶體的物理地址,進行位(bit)一級的操作。
優點
1、 簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程式書寫形式自由,區分大小寫。把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像彙編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。
2、運算符豐富
C語言的運算符包含的範圍很廣泛,共有34種運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
3、數據類型豐富
C語言的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種複雜的數據結構的運算。並引入了指針概念,使程式效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。 同時對於不同的編譯器也有各種
4、 C是結構式語言
結構式語言的顯著特點是代碼及數據的分隔化,即程式的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程式層次清晰,便於使用、維護以及調試。C語言是以函式形式提供給用戶的,這些函式可方便的調用,並具有多種循環、條件語句控制程式流向,從而使程式完全結構化。
5、 語法限制不太嚴格,程式設計自由度大
雖然C語言也是強類型語言,但它的語法比較靈活,允許程式編寫者有較大的自由度。
6、 允許直接訪問物理地址,對硬體進行操作
由於C語言允許直接訪問物理地址,可以直接對硬體進行操作,因此它既具有高級語言的功能,又具有低級語言的許多功能,能夠像彙編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元,可用來寫系統軟體。
7、 生成目標代碼質量高,程式執行效率高
一般只比彙編程式生成的目標代碼效率低10へ20%。
8、 適用範圍大,可移植性好
C語言有一個突出的優點就是適合於多種作業系統,如DOS、UNIX、windows 98.windows NT;也適用於多種機型。C語言具有強大的繪圖能力,可移植性好,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫,它也是數值計算的高級語言。
缺點
1. C語言的缺點主要表現在數據的封裝性上,這一點使得C在數據的安全性上有很大缺陷,這也是C和C++的一大區別。
2. C語言的語法限制不太嚴格,對變數的類型約束不嚴格,影響程式的安全性,對數組下標越界不作檢查等。從套用的角度,C語言比其他高級語言較難掌握。
目前流行
·Microsoft C 或稱 MS C
·Borland Turbo C 或稱 Turbo C
·AT&T C
這些C語言版本不僅實現了ANSI C標準,而且在此基礎上各自作了一些擴充,使之更加方便、完美。
相關人物
"C語言之父"辭世
昨日,在眾多的國際互動論壇上,計算機愛好者們以特有的方式紀念這位程式語言的重要奠基人。許多網友的發帖中沒有片言隻字,僅僅留下一個分號“;”。在C語言中,分號標誌著一行指令語句的結束,網友們以此來悼念“C語言之父”,美國著名計算機專家丹尼斯·里奇(Dennis Ritchie)所引領的時代悄然遠去。
在日益紛繁複雜的程式設計語言王國中,C語言因其簡潔、有效、通用的特性而始終占據一席之地。被譽為“C語言之父”,同時也是作業系統Unix之父的C語言發明人之一——丹尼斯·里奇10月9日以70歲之齡辭世。
生於1941年9月9日的丹尼斯·里奇曾在哈佛大學學習物理學和套用數學,1967年他進入貝爾實驗室,並曾經擔任朗訊技術公司系統軟體研究部門的領導人。
1983年,美國計算機協會將當年的圖靈獎破例頒給了作為軟體工程師的肯·湯普遜與里奇,獲獎原因是他們“研究發展了通用的作業系統理論,尤其是實現了Unix作業系統”。並且,美國計算機協會當年還決定新設立一個獎項——軟體系統獎,以獎勵那些優秀的軟體開發者,首個軟體系統獎當然也是非他們兩人莫屬。
儘管通過Unix拿獎拿到手軟,但令里奇引起最大關注和反響的則是C語言的問世。1999年,里奇和湯普遜為發展C語言和Unix作業系統一起獲得了美國國家技術獎章。
雖然在C語言之後,C++、Java等各式各樣計算機高級語言層出不窮,但不少程式設計師仍舊認為,C語言簡潔、高效、靈活的特性令其具有獨特魅力。“現在的程式編寫朝著越來越冗長龐大的方向發展,而C語言雖然屬於相對‘低級’的程式語言,但它的簡潔之美是無可替代的。”一位電腦程式員道出了自己格外青睞C語言的原因。
和里奇所創造的C語言一樣,Unix系統也同樣具有簡潔、樸素、小巧的特性。但正如里奇自己所說的那樣,“Unix系統是一個簡單基本的作業系統,但學會欣賞簡潔需要天賦。”而里奇本人,儘管在軟體發展史上占有舉足輕重的地位,也同樣在從事的領域辛勤而低調地耕耘近40年。